No decorrer deste curso, os programas R/RStudio serão usados como uma ferramenta para auxiliar na aplicação de métodos e técnicas de análise da informação, uma etapa fundamental em pesquisas que buscam um aumento da compreensão de questões no nosso campo de interesse.
É importante ressaltar o uso do R/RStudio não pode ser dissociado do processo de pesquisa, que envolve a observação, formulação de hipóteses, coleta de dados e análise de dados, sendo este o foco deste curso.
O R é um programa estatístico muito usado na análise e visualização de dados, onde a interação é feita através de uma sintaxe (uma linguagem de programação).
Algumas de suas vantagens são:
Um script refere-se à uma rotina de análise ou visualização de dados que:
O RStudio é o ambiente de desenvolvimento integrado mais usado para desenvolver análise de dados com a linguagem R. Além de permitir escrever códigos em scripts e rodar códigos no console, é possível visualizar gráficos e mapas (estáticos ou dinâmicos), gerenciar pacotes, navegar pelos arquivos, dentre outras funções.
Primeiro, é necessário instalar o R. Você pode transferir a última versão neste endereço. Após a transferência, siga o passo a passo para a instalação (Fig. 1).
Fig. 1 - Instalação do R
Se a instalação do R foi bem sucedida, você pode transferir o RStudio Desktop (versão gratuita) neste endereço e seguir o passo a passo para a instalação (Fig. 2).
Fig. 2 - Instalação do RStudio
A interface do RStudio deve exibir, na maior parte do tempo, quatro painéis (Fig. 3):
1. Source: É a sua área de trabalho principal. Pode exibir várias janelas, com scripts, tabelas e outros conteúdos. Ao clicar em Run ou apertar os comandos Ctrl + Enter, dentro de um script, o conteúdo selecionado vai rodar e aparecer no Console.
2. Console: Todo código que você rodar de um script será enviado ao Console, onde os resultados e avisos aparecerão. Você também pode escrever uma linha de código diretamente no Console.
3. Environment/History: * Environment: É o ambiente de trabalho ativo. Todos os objetos e funções definidos devem aparecer no Environment. * History: Exibe o histórico de cada linha de código rodada, que podem ser enviadas à Source ou Console.
4. Files/Plots/Packages/Help: * Files: Permite navegar pelos diretórios de trabalho. * Plots: Exibe os gráficos, mapas e outras figuras produzidas. * Packages: Permite o gerenciamento dos pacotes ativos e instalados. * Help: Contém tutoriais e exibe ajuda, quando solicitada.
Fig. 3 - Interface RStudio
No decorrer das aulas práticas, você pode precisar de ajuda para entender uma função. Não se preocupe: ter dúvidas faz parte do processo de aprendizado. Na verdade, o R/RStudio conta com uma ferramenta que pode te auxiliar: é possível acessar tutoriais produzidos pelo R/RStudio em Help.
Help também exibe a documentação de cada função, que pode ser acessada com o uso das funções help() ou ?.
Para acessar a documentação da função média, por exemplo, você pode digitar:
## starting httpd help server ... done
Ou:
Que deve exibir o seguinte conteúdo em Help (Fig. 4):
Importante: a seção uso descreve os argumentos obrigatórios (apenas x, no caso da função mean()), sendo todos os outros argumentos descritos opcionais. Atente-se aos argumentos obrigatórios e opcionais ao usar uma função.
Infelizmente, a maior parte do conteúdo está escrito em inglês, assim como em outras linguagens de programação. :-(
Você pode traduzir o conteúdo da documentação no tradutor de sua preferência, como fizemos para apresentar a documentação da função mean().
Nós também recomendamos que você busque ajuda no buscador de sua preferência (Google, Bing etc.) e no Stackoverflow, mas estaremos disponíveis no decorrer deste curso para tirar qualquer dúvida que você tiver no processo de análise de dados.
Fig. 4 - Documentação da função mean()
Nessa primeira aula prática, vamos realizar uma análise exploratória dos discentes matriculados no Bacharelado em Planejamento Territorial (BPT), a partir da amostra dos respondentes da pesquisa Perfil Discente 2019 da PROPLADI/UFABC, com o objetivo de responder às seguintes perguntas:
Após a instalação do R e RStudio, abra o RStudio. Clique em New file >>> R Script ou aperte os comando Ctrl + Shift + N para criar um novo script, onde vamos salvar a rotina de análise de dados.
Em cada aula prática, vamos salvar a rotina de análise de dados em um novo script, que podemos abrir a qualquer momento para lembrar as funções e objetos que foram usados. É recomendado submeter, junto com o trabalho final, um script que permite a reprodução da sua pesquisa.
Fig. 5 - Como criar um novo script
Os dados já foram pré-processados para conter apenas as observações (discentes matriculados no BPT) e variáveis de interesse. O endereço para acessar a base de dados é: https://raw.githubusercontent.com/luisfelipebr/mti/master/dados/dados_bpt1.csv.
O RStudio conta com um botão para auxiliar na importação de dados. Clique em Import Dataset >>> From Text (readr)... para importar a sua primeira base de dados. Em File/URL você pode colocar o endereço web para a transferência e importação da base de dados (desde que você tenha conexão com a internet) ou você pode clicar em Browse para navegar pelo seu diretório até encontrar o arquivo que deseja importar. Uma pré-visualização do arquivo deve aparecer em Data preview, permitindo que você confira se a importação da base de dados deu certo. Import options apresenta algumas opções de importação adicionais que você pode explorar mais tarde.
Adicione o endereço web da nossa base de dados e clique em Update ou faça a transferência do arquivo e indique o caminho clicando no botão Browse.
Veja que alguns caracteres apareceram com erro. Isso aconteceu porque o formato do nosso arquivo não foi reconhecido. É possível arrumar esses caracteres clicando em Locale: Configure.... Em Encoding: selecione Other... e escreva latin1. Clique em OK e em seguida em Configure.
Se você clicar na opção Import, a base de dados será importada. Mas como o nosso objetivo é tornar o código reprodutível, vamos copiar o código que apareceu em Code preview e colar no nosso script.
library(readr)
dados_bpt1 <- read_csv("https://raw.githubusercontent.com/luisfelipebr/mti/master/dados/dados_bpt1.csv",
locale = locale(encoding = "latin1"))
View(dados_bpt1)Fig. 6 - Importação da base de dados através da interface
Selecione todo o código (3 linhas) e clique em Run ou aperte os comandos Ctrl + Enter para rodar o seu primeiro código. Uma nova janela será aberta, permitindo a visualização da base de dados. Ela foi aberta após a reprodução do código View(dados_bpt1), que abre uma tabela parecida com a do excel para visualização dos dados.
Se tudo deu certo, a sua base de dados está agora listada no Environment: dados_bpt1 com 37 observações e 8 variáveis.
Fig. 7 - Rodando o código
Atenção: Se essa foi a sua primeira vez usando o R no seu computador, pode ser necessário instalar o pacote readr para importar os dados. Isso pode ser feito rodando o código abaixo após copiar e colar no seu script ou console. Um pacote só precisa ser instalado uma vez em cada computador.
Além da função View(), existem diversas outras funções que permitem explorar uma base de dados.
A função head() exibe as primeiras observações da base de dados no Console, sem a necessidade de abrir uma nova aba, e é altamente recomendada para bases de dados grandes (mais de 100.000 observações) que podem travar o programa RStudio quando abertas.
## # A tibble: 6 x 8
## id idade ano_de_ingresso ca cr turno renda municipio_de_resi~
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
## 1 1 25 2013 2.7 2.6 Matut~ De R$ 5.000~ Ribeirão Pires - ~
## 2 2 22 2015 2.9 2.86 Notur~ De R$ 1.500~ São Bernardo do C~
## 3 3 25 2013 2.7 2.5 Matut~ De R$ 750,0~ São Paulo - SP
## 4 4 23 2015 3.01 2.91 Notur~ De R$ 3.000~ Mauá - SP
## 5 5 24 2013 2 1.6 Notur~ De R$ 4.000~ São Paulo - SP
## 6 6 31 2013 3.2 2.72 Matut~ De R$ 3.000~ São Paulo - SP
A função tail(), de forma similar, exibe as últimas observações da base de dados no Console.
## # A tibble: 6 x 8
## id idade ano_de_ingresso ca cr turno renda municipio_de_resi~
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
## 1 32 24 2015 3.5 3.5 Matut~ De R$ 5.000~ São Paulo - SP
## 2 33 30 2010 NA NA Notur~ Até R$ 750,~ São Bernardo do C~
## 3 34 NA 2012 NA NA Notur~ De R$ 4.000~ São Bernardo do C~
## 4 35 24 2014 3.5 3.4 Notur~ Acima de R$~ São Paulo - SP
## 5 36 23 2015 4 3.6 Notur~ De R$ 750,0~ São Paulo - SP
## 6 37 29 2012 2.43 1.93 Notur~ Até R$ 750,~ São Paulo - SP
A função names() exibe o nome de todas as variáveis da base de dados no Console.
## [1] "id" "idade"
## [3] "ano_de_ingresso" "ca"
## [5] "cr" "turno"
## [7] "renda" "municipio_de_residencia"
A função str() exibe a estrutura da base de dados, com a classe da base de dados (tibble - é um nome para uma base de dados estruturada em formato de tabela), o número de observações e variáveis, o nome de cada variável, a classe de cada variável (se é numérica, lógica, caractére ou outras) e as primeiras observações.
## tibble [37 x 8] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:37] 1 2 3 4 5 6 7 8 9 10 ...
## $ idade : num [1:37] 25 22 25 23 24 31 32 29 NA 23 ...
## $ ano_de_ingresso : num [1:37] 2013 2015 2013 2015 2013 ...
## $ ca : num [1:37] 2.7 2.9 2.7 3.01 2 3.2 NA 2 3 2.7 ...
## $ cr : num [1:37] 2.6 2.86 2.5 2.91 1.6 2.72 NA 2 2.8 2.04 ...
## $ turno : chr [1:37] "Matutino" "Noturno" "Matutino" "Noturno" ...
## $ renda : chr [1:37] "De R$ 5.000,01 a R$ 7.000,00" "De R$ 1.500,01 a R$ 2.250,00" "De R$ 750,01 a R$ 1.500,00" "De R$ 3.000,01 a R$ 4.000,00" ...
## $ municipio_de_residencia: chr [1:37] "Ribeirão Pires - SP" "São Bernardo do Campo - SP" "São Paulo - SP" "Mauá - SP" ...
## - attr(*, "spec")=
## .. cols(
## .. id = col_double(),
## .. idade = col_double(),
## .. ano_de_ingresso = col_double(),
## .. ca = col_double(),
## .. cr = col_double(),
## .. turno = col_character(),
## .. renda = col_character(),
## .. municipio_de_residencia = col_character()
## .. )
Importante: o operador $ é usado para referir-se a uma variável da base de dados.
A função summary() apresenta um sumário com estatísticas descritivas (mínimo, 1º quartil, mediana, média, 3º quartil, máximo e valores faltantes - NA’s) para todas as variáveis numéricas.
## id idade ano_de_ingresso ca cr
## Min. : 1 Min. :19.00 Min. :2009 Min. :2.000 Min. :1.600
## 1st Qu.:10 1st Qu.:24.00 1st Qu.:2012 1st Qu.:2.675 1st Qu.:2.475
## Median :19 Median :25.00 Median :2013 Median :2.990 Median :2.820
## Mean :19 Mean :25.71 Mean :2013 Mean :2.925 Mean :2.757
## 3rd Qu.:28 3rd Qu.:27.50 3rd Qu.:2015 3rd Qu.:3.203 3rd Qu.:3.152
## Max. :37 Max. :32.00 Max. :2018 Max. :4.000 Max. :3.600
## NA's :2 NA's :5 NA's :5
## turno renda municipio_de_residencia
## Length:37 Length:37 Length:37
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
No sumário, já temos a resposta para as duas primeiras questões.
Mas essas respostas também podem ser apresentadas de forma mais direta, com o uso de funções específicas para esse fim.
1. Qual é a mediana da idade dos discentes matriculados no BPT?
A mediana pode ser obtida através da função median().
## [1] NA
Mas quando digitamos median(dados_bpt1$idade), a resposta é um valor faltante (NA). Isso aconteceu porque, conforme vimos no sumário, existem 2 NA’s na variável idade. Para obter o mesmo resultado do sumário, podemos acrescentar o argumento na.rm = TRUE para remover os valores faltantes do cálculo da mediana.
## [1] 25
Portanto, a mediana da idade dos discentes matriculados no BPT é 25 anos.
2. Qual é o CR médio dos discentes matriculados no BPT?
De forma similar, podemos aplicar a função mean() para obter o CR médio dos discentes matriculados no BPT.
## [1] 2.7575
O CR médio dos discentes matriculados no BPT é 2,757.
3. Quais são os três municípios de residência mais comuns entre os discentes matriculados no BPT?
Para responder a terceira pergunta, aplicamos a função table() para criar uma tabela de contingência com a contagem dos municípios de residência dos discentes matriculados no BPT.
##
## Guarulhos - SP Mauá - SP
## 1 1
## Outro município do Estado de São Paulo Ribeirão Pires - SP
## 1 3
## Santo André - SP São Bernardo do Campo - SP
## 8 9
## São Paulo - SP
## 14
Os três municípios de residência mais comuns entre os discentes matriculados no BPT são São Paulo, São Bernardo do Campo e Santo André.
4. Qual o município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no turno matutino no último ano?
Para responder a essa pergunta, usamos a função table() para criar uma tabela de contingência com dois argumentos: município de residência e turno.
##
## Matutino Noturno Prefiro não responder
## Guarulhos - SP 0 0 1
## Mauá - SP 0 1 0
## Outro município do Estado de São Paulo 0 0 0
## Ribeirão Pires - SP 1 2 0
## Santo André - SP 2 6 0
## São Bernardo do Campo - SP 0 8 1
## São Paulo - SP 5 9 0
##
## Vespertino
## Guarulhos - SP 0
## Mauá - SP 0
## Outro município do Estado de São Paulo 1
## Ribeirão Pires - SP 0
## Santo André - SP 0
## São Bernardo do Campo - SP 0
## São Paulo - SP 0
O município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no matutino é São Paulo.
O R não vai exportar a sua base de dados a menos que você especifique esse comando.
Após rodar a sua rotina de análise de dados, você pode ter feito alterações na base de dados e gostaria de salvá-la como um novo arquivo para acessá-la futuramente. No nosso caso, não fizemos alterações, mas ainda assim vamos exportar a base de dados com o uso da função write_csv().
Atenção: você precisa alterar o argumento path = para incluir o diretório de trabalho onde deseja salvar o arquivo. dados_bpt1.csv deve ser mantido, pois refere-se ao nome e formato do arquivo que será exportado.
Após executar a análise exploratória de dados proposta nessa aula prática o seu script deve estar parecido com esse.
Você pode salvar o seu script clicando no disquete azul ou através do comando Ctrl + S.
É muito importante salvar a rotina de análise de dados, pois isso permite replicá-la sem escrever todo o código novamente.
Fig. 8 - Salvando o script
Importante: todo o conteúdo após o # não será rodado pelo R. Ele é muito usado para adicionar comentários antes de cada linha, para que você e outras pessoas que estão lendo o seu código entendam o que cada linha de código faz ao ser rodada.